This relates generally to graphics processing.
In graphics processing, a rasterization pipeline creates a depiction of an object. The input to the rasterization pipeline is made up of vertices of primitives, typically triangles, to be rendered. The vertex positions are used to determine the pixels where the primitive will be visible.
One problem that arises is called “aliasing” along edges. Aliasing typically appears where straight lines look like jagged edges. Thus anti-aliasing techniques have been developed to counteract aliasing. One such technique is multi-sampled, anti-aliasing (MSAA). Generally, aliasing may be reduced by oversampling or supersampling, namely sampling at a rate higher than the rate of the intended output.
Multi-sampled, anti-aliasing (MSAA) involves supersampling with m samples (mx MSAA) where the m samples are known as sub-samples because there are multiple samples for each pixel.
In MSAA, the pixel shader is not always executed for each sub-sample. Instead it is executed only once for each pixel where a primitive covers at least one sub-sample. This is called executing at the pixel frequency. MSAA running at pixel frequency executes one pixel shader thread per pixel, and stores pixel output at each sub sample location covered by the primitive. Compression schemes will allow redundant sub-samples to be minimally written out to memory. MSAA running at sample frequency will run a pixel shader for each sub-sample covered by the primitive and will write out data to each sub sample from the corresponding pixel shader invocation.
Then in MSAA and in conventional rasterization pipelines, vertex attributes interpolated to the center of the pixel, are used by the pixel shader to fetch textures and to perform lighting.
Some three-dimensional (3D) graphics applications perform some pixel shading at sample frequency. This means the draws will execute one pixel shader thread per sub-sample covered by the primitive covering the pixel.